package design_pattern.state;

/**
 * Created by WeiDingKuo on 2017/10/27 9:34
 * <p>
 * 状态模式
 * 类图结构和策略模式完全相同
 * <p>
 * 将代码中大段的if else 或者 switch 判断和操作拆分到状态类子类中去实现
 * 在状态有所增减的时候，Context中的代码不必修改
 * 缺点会产生大量状态子类
 */
public class Test {
    public static void main(String[] args) {
        Context context = new Context();
        context.setState(new StateImpl1());
        context.dosomething();

        context.setState(new StateImpl2());
        context.dosomething();

        context.setState(() -> System.out.println("根据状态三来执行的操作"));
        context.dosomething();
    }
}
